// src/i18n/index.ts
import { createI18n } from 'vue-i18n'
// 引入 element-plus 的语言包
import elementEnLocale from 'element-plus/lib/locale/lang/en'
import elementZhLocale from 'element-plus/lib/locale/lang/zh-cn'
// 引入pinia
import { useLangStore } from '@/stores/lang'

const messages = {
  'en-us': {
    message: {
      hello: 'hello world',
    },
    ...elementEnLocale,
  },
  'zh-cn': {
    message: {
      hello: '你好世界',
    },
    ...elementZhLocale,
  },
}

// 默认语言
const sessionHeaders = sessionStorage.getItem('headers')
const defaultLanguageId =
  sessionHeaders &&
  JSON.parse(sessionHeaders) &&
  JSON.parse(sessionHeaders).language_id
    ? JSON.parse(sessionHeaders).language_id
    : 'zh-cn'

const i18n = createI18n({
  globalInjection: true,
  legacy: false,
  locale: defaultLanguageId,
  messages: messages,
})

export default i18n

// 给js中弹框使用
export const t = i18n.global.t

// 语言和语言code
export const langNameObj = {
  'zh-cn': '中文',
  'en-us': 'English',
}

export const downloadLanguage = async () => {
  const langStore = useLangStore()
  await langStore.downloadLanguage()
}
